package demo08.Adapter.iterenum;

import java.util.Enumeration;
import java.util.Iterator;

/**
 * 设计一个枚举迭代适配器
 * */
public class EnumerationIterator implements Iterator<Object>{
	//Enumeration 枚举接口其实是一个比 Iterator 迭代器接口更早期的枚举集合中的元素的接口。
/*   
 *  Enumeration指定下面的两个方法： 
   boolean hasMoreElements() 
   Object nextElement() 
   
   Iterator接口中定义了三个方法:
	   1.hasNext()
	   是否还有下一个元素.
	   2.next()
	   返回下一个元素.
	   3.remove()
	   删除当前元素.
	   注意：
	1)Iterator和Enumeration的区别
Iterator是用来替代Enumeration的,Enumeration中只定义了两个方法,不具备删除功能.
2)调用next()方法后才可以调用remove()方法,而且每次调用next()后最多只能调用一次remove()方法,否则抛出IllegalStateException异常.   
	   */
	Enumeration<?> enumeration;
	
	public EnumerationIterator(Enumeration<?> enumeration) {
		this.enumeration = enumeration;
	}

	@Override
	public boolean hasNext() {
		// TODO Auto-generated method stub
		return enumeration.hasMoreElements();
	}

	@Override
	public Object next() {
		// TODO Auto-generated method stub
		return enumeration.nextElement();
	}

	@Override
	public void remove() {
		// TODO Auto-generated method stub
		throw new UnsupportedOperationException();
 	}

}
